#ifndef __RKMEDIA_MODULE_CONFIG__
#define __RKMEDIA_MODULE_CONFIG__

#include <iostream>
using namespace std;

extern "C"
{
#include <assert.h>
#include <fcntl.h>
#include <getopt.h>
#include <signal.h>
#include <stdbool.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include <pthread.h>
#include "sample_common.h"
#include "rkmedia_api.h"
}

#include "rkmedia_module_container.h"

#define VIDEO_NODE       "rkispp_scale0"
#define VO_DEV_NODE      "/dev/dri/card0"
#define CAMERA_ID        0
#define PIX_HEIGHT_SIZE  1280
#define PIX_WIDTH_SIZE   720
#define RK_FPS           15
#define IQ_FILE_PATH     "/etc/iqfiles"

typedef struct
{
    unsigned int chn;
    VI_CHN_ATTR_S attr;
} RV1126_VI_CONFIG;

typedef struct
{
    unsigned int chn;
    VENC_CHN_ATTR_S attr;
} RV1126_VENC_CONFIG;

typedef struct
{
    unsigned int chn;
    RGA_ATTR_S attr;
} RV1126_RGA_CONFIG;

class rkmediaInfo
{
public:
    rkmediaInfo();
    ~rkmediaInfo();
    int rkmedia_vi_init(RV1126_VI_CONFIG *vi);
    int rkmedia_venc_init(RV1126_VENC_CONFIG *venc);
    int rkmedia_rga_init(RV1126_RGA_CONFIG *rga);
    int rkmedia_module_init();
};

#endif